<?php
    /*
    * Copyright (c) 2007, Osuvaldo Ramos
    * 
    * All rights reserved.
    * 
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions are
    * met:
    *
    *    * Redistributions of source code must retain the above copyright
    *      notice, this list of conditions and the following disclaimer.
    *    * Redistributions in binary form must reproduce the above copyright
    *      notice, this list of conditions and the following disclaimer in the
    *      documentation and/or other materials provided with the distribution.
    *    * Neither the name of the CoreTech nor the names of its
    *      contributors may be used to endorse or promote products derived from
    *      this software without specific prior written permission.
    * 
    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
    * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    * 
    * $Id: console.php 2 2008-01-21 02:48:28Z xdracox $
    */
    
    define('BNETCS', true);
    define('ROOT', '.');
    
    include 'common.php';
    include_once ROOT.'/lib/Console.php';
    
    if ( $auth->checkAuth() )
    {
        $action = $_GET['a'];
        
        $console = new Console();
        
        switch ( $action )
        {
            case 'm':
            {
                $mod_name = strtolower($_GET['m']);
                
                switch ( $mod_name )
                {
                    case 'frontpage':
                    case 'ranksystem':
                    case 'sidebar':
                    {
                        include_once ROOT.'/mods/'.$_GET['m'].'/'
                            .$CONF['mods'][$mod_name]['name'].'.php';
                        break;
                    }
                    default:
                    {
                        include_once ROOT.'/mods/'.$_GET['m'].'.php';
                    }
                }
                
                eval('$mod = new '.$_GET['m'].'();');
                $mod->displayPage($_GET['p']);
                
                break;
            }
            case 'cp': // change password
            {
                $console->displayChangePass();
                break;
            }
            case 'rc': // recruitment
            {
                $console->displayRecruitment();
                break;
            }
            case 'pr': // promotion
            {
                $console->displayPromotion();
                break;
            }
            case 'de': // demotion
            {
                $console->displayDemotion();
                break;
            }
            case 'cr': // change rank
            {
                $console->displayChangeRank();
                break;
            }
            default:
            {
                display_header();
                
                // tell all the mods that the user has just logged in and tell
                // them to display their console options
                // first the "built-in" mods
                include_once ROOT.'/mods/FrontPage/'
                    .$CONF['mods']['frontpage']['name'].'.php';
                    
                include_once ROOT.'/mods/SideBar/'.$CONF['mods']['sidebar']['name']
                    .'.php';
                    
                include_once ROOT.'/mods/RankSystem/'
                    .$CONF['mods']['ranksystem']['name'].'.php';
                
                $member_id = $auth->getAuthData('member_id');
                
                $fp = new FrontPage();
                $sb = new SideBar();
                $rs = new RankSystem();
                
                $fp->onLogin($member_id);
                $sb->onLogin($member_id);
                $rs->onLogin($member_id);
                
                $console->consoleStart();
                
                $console->display();
                
                $fp->displayConsole();
                $sb->displayConsole();
                $rs->displayConsole();
                
                // now the "external" mods
                $i = 0;
                while ( array_key_exists($i, $CONF['mods']) )
                {
                    $mod_name = $CONF['mods'][$i];
                    
                    include_once ROOT.'/mods/'.$mod_name.'.php';
                    
                    eval('$mod = new '.$mod_name.'();');
                    
                    $mod->onLogin($member_id);
                    $mod->displayConsole();
                    
                    ++$i;
                }
                
                $console->consoleEnd();
                display_footer();
                
                break;
            }
        }
    }
    else
    {
        header('Location: login.php');
    }
?>

